const baseUrl = "http://wh2mcy.top/api/v2/api"
// const baseUrl = "http://qlapi.sylu.edu.cn/mock/1021"

/* 倒计时效果 */
let wat = 60;
function GetRTime() {
    if (wat == 0) {
        $(".verification-btn").val('发送验证码');
        $(".verification-btn").attr('style', 'font-size: 15px');
        $(".verification-btn").attr('style', 'letter-spacing: 4px');
    } else {
        $(".verification-btn").val('重新发送 ' + wat + '秒');
        $(".verification-btn").attr('style', 'font-size: 10px');
        $(".verification-btn").attr('style', 'letter-spacing: 1px');
        wat--;
        setTimeout("GetRTime()", 1000);
    }
}

/* 发送验证码点击事件 */
function verify() {
    if ($(".verification-btn").val() != '发送验证码') {
        alert("请等待时间结束再点击");
    } else {
        let data = {
            "email": $("#regEmail").val()
        };
        $.ajax({
            type: "post",
            url: `${baseUrl}/user/email`,
            data: JSON.stringify(data),
            dataType: "json",
            contentType: 'application/json',
            success: function (res) {
                if (res.code == 200) {
                    alert("已成功发送！");
                    /* 重置倒计时 */
                    wat = 60;
                    GetRTime();
                } else {
                    alert(res.msg);
                }
                console.log(res);
            },
            error: function (err) {
                console.log(err);
            }
        });
    }
}

/* 注册提交按钮 */
function register() {
    let regData = {
        "username": $("#regUsername").val(),
        "password": $("#regPassword").val(),
        "email": $("#regEmail").val(),
        "verify_code": $("#verifyCode").val()
    }
    $.ajax({
        type: "post",
        url: `${baseUrl}/user/regist`,
        data: JSON.stringify(regData),
        dataType: "json",
        contentType: 'application/json',
        success: function (res) {
            console.log(res);
            if (res.code == 200) {
                alert("注册成功！请前往登录");
            } else {
                alert(res.msg);
            }
            /* 清空内容 */
            $("#regEmail, #verifyCode, #regUsername, #regPassword, #repassword").val('');
        },
        error: function (err) {
            console.log(err);
        }
    })
}

/* 登录提交按钮 */
function login() {
    let data = {
        "username": $("#loginUsername").val(),
        "password": $("#loginPassword").val()
    };
    $.ajax({
        type: "post",
        url: `${baseUrl}/user/login`,
        data: JSON.stringify(data),
        dataType: "json",
        contentType: 'application/json',
        success: function (res) {
            if (res.code == 200) {
                alert("登录成功！")
                /* 保存token和信息 */
                window.localStorage.setItem('token', res.data.token);
                /* 隐藏界面 */
                $(".main-control-box").css('display', 'none');	
                $("#bg").css('display', 'none');	
                /* 设置用户名*/	
                $("#logout").css('display', 'none');	
                $("#loginUser").css('display', 'flex');	
                $("#UserName").html('你好！' + res.data.user.username);
                location.reload();  // 刷新页面
            } else {
                alert(res.msg);
            }
            /* 清空内容 */
            $("#loginEmail, #loginUsername, #loginPassword").val('');
            console.log(res);
        },
        error: function (err) {
            console.log(err);
        }
    });

}

/* 用户端提示信息 */
$(document).ready(function () {
    let token = localStorage.getItem("token");
    /* 判断登录状态 */
    if (token) {
        $.ajax({
            type: "get",
            url: `${baseUrl}/user/me`,
            beforeSend: function (request) {
                request.setRequestHeader("x-token", token);
            },
            success: function (res) {
                if (res.code == 200) {
                    /* 设置用户名*/
                    $("#logout").css('display', 'none');
                    $("#loginUser").css('display', 'flex');
                    $("#UserName").html('你好！' + res.data.user.username);
                } else {
                    alert(res.msg);
                }
                console.log(res);
            },
            error: function (err) {
                console.log(err);
            }
        })
    }

    /* 注册信息提示 */
    //得到焦点后，清空input后的span里的内容
    $("#regEmail").focus(function () {
        $("#regEmail").next().html('');
    });
    $("#regUsername").focus(function () {
        $("#regUsername").next().html('');
    });
    $("#regPassword").focus(function () {
        $("#regPassword").next().html('');
    });
    $("#repassword").focus(function () {
        $("#repassword").next().html('');
    });
    //用来后续判断是否填写完整、正确
    var sign_email = false,
        sign_username = false,
        sign_password = false,
        sign_repassword = false;
    //邮箱失去焦点后判断是否合法
    $("#regEmail").blur(function () {
        var emial = $("#regEmail").val();
        if (emial == '') {
            $("#regEmail").next().html('*邮箱不能为空');
            sign_email = false;
        } else {
            $("#regEmail").next().html('');
            sign_email = true;
        }
    });
    //用户名失去焦点后判断是否合法
    $("#regUsername").blur(function () {
        var username = $("#regUsername").val();
        var re = /^[0-9a-zA-Z_-]{4,18}$/;
        if (username == '') {
            $("#regUsername").next().html('*用户名不能为空');
            sign_username = false;
        } else if (re.test(username)) {
            $("#regUsername").next().html('');
            sign_username = true;
        } else {
            $("#regUsername").next().html('*用户名格式不正确');
            sign_username = false;
        }
    });
    //密码失去焦点后判断是否合法
    $("#regPassword").blur(function () {
        var password = $("#regPassword").val();
        var re = /^[a-zA-Z0-9_-]{6,12}$/;
        if (password == '') {
            $("#regPassword").next().html('*密码不能为空');
            sign_password = false;
        } else if (re.test(password)) {
            $("#regPassword").next().html('');
            sign_password = true;
        } else {
            $("#regPassword").next().html('*密码格式不正确');
            sign_password = false;
        }
    });
    //失去焦点后判断两次密码是否一致
    $("#repassword").blur(function () {
        var repassword = $("#repassword").val();
        if (repassword == '') {
            $("#repassword").next().html('*密码不能为空');
            sign_repassword = false;
        } else if (repassword == $("#regPassword").val()) {
            $("#repassword").next().html('');
            sign_repassword = true;
        } else {
            $("#repassword").next().html('*两次密码不同');
            sign_repassword = false;
        }
    });
    //信息未填写完整，弹出提示且不允许注册
    $("#regBtn").click(function () {
        if (sign_username == false || sign_password == false || sign_repassword == false) {
            alert("请检查信息是否填写完整");
        } else {
            $("#regBtn").attr("onclick", "register()");   //修改onclick属性，调用Ajax函数
            $("#regBtn").trigger('onclick');    //再次触发点击
        }
    });

    /* 登录信息提示 */
    //得到焦点后，清空input后的span里的内容
    $("#loginEmail").focus(function () {
        $("#loginEmail").next().html('');
    });
    $("#loginUsername").focus(function () {
        $("#loginUsername").next().html('');
    });
    $("#loginPassword").focus(function () {
        $("#loginPassword").next().html('');
    });
    //用来后续判断是否填写完整、正确
    var sign_username = false,
        sign_password = false;
    //用户名失去焦点后判断是否合法
    $("#loginUsername").blur(function () {
        var username = $("#loginUsername").val();
        var re = /^[0-9a-zA-Z_-]{4,18}$/;
        if (username == '') {
            $("#loginUsername").next().html('*用户名不能为空');
            sign_username = false;
        } else if (re.test(username)) {
            $("#loginUsername").next().html('');
            sign_username = true;
        } else {
            $("#loginUsername").next().html('*用户名格式不正确');
            sign_username = false;
        }
    });
    //密码失去焦点后判断是否合法
    $("#loginPassword").blur(function () {
        var password = $("#loginPassword").val();
        var re = /^[a-zA-Z0-9_-]{6,12}$/;
        if (password == '') {
            $("#loginPassword").next().html('*密码不能为空');
            sign_password = false;
        } else if (re.test(password)) {
            $("#loginPassword").next().html('');
            sign_password = true;
        } else {
            $("#loginPassword").next().html('*密码格式不正确');
            sign_password = false;
        }
    });
    //信息未填写完整，弹出提示且不允许注册
    $("#loginBtn").click(function () {
        if (sign_username == false || sign_password == false) {
            alert("请检查信息是否填写完整");
        } else {
            $("#loginBtn").attr("onclick", "login()");   //修改onclick属性，调用Ajax函数
            $("#loginBtn").trigger('onclick');    //再次触发点击
        }
    });
})

